در
شمارههای قبلِ ماهنامه به نقش اشیا، در فناوری اینترنت اشیا اشاره
کردیم؛ از طرفی گفتیم که شرکتها برای صرفهجویی، مهار انرژی و
یکپارچهسازی مؤلفههای هوشمند، باید به دنبال راهکارهای جامعی باشند.
همچنین نگاهی کوتاه به اینلههای RFID، جفتسازی القایی و برچسبهای RFID
تمام پلیمری نیز داشتیم. همانگونه که در شمارههای گذشته دیدید، اینترنت
اشیا به معنای دادههای بسیار بزرگ است، کلان دادههایی که تاکنون مشابه
آنها دیده نشده است. تنوع کلان دادهها و شرکتهای مختلفی که این دادهها
را تولید میکنند، باعث شده است تا روشهای مدیریت این دادهها و نحوه
تولید دادههای هوشمند، موردتوجه شرکتها قرار بگیرند.
کلان دادهها آنگونه که پیشازاین هرگز دیده نشدهاند
به گزارش سافت گذر به نقل ازمجله شبکه؛ حجم
گسترده دادههای تولیدشده توسط اینترنت اشیا، یکی از بزرگترین موانع
استقرار این فناوری در سازمانها است؛ بهعبارتدیگر سازمانها باید بدانند
با حجم انبوهی از اطلاعاتی که جمعآوری میشود، چهکاری باید انجام دهند.
مایک ردینگ مدیرعامل Accenture Technology Labs دراینباره میگوید:
«رسانههای اجتماعی، حسگرها و دستگاههای نهفته (تعبیهشده)، توانایی
جمعآوری اطلاعات در زمینههایی که تاکنون کشف نشدهاند را گسترش میدهند».
همانگونه که در شکل 1 میبینید، رشد انفجاری استفاده از اینترنت، همراه
با اسمارتفونها و برنامههای اجتماعی و ارتباطات ماشین به ماشین، در کلان
دادهها انقلابی به وجود آورده است. در سال 2013 مؤسسه IDC تخمین زد که
اندازه دادههای دیجیتال در جهان به رقم 4.4 زتابایت رسیده است (4.4
تریلیون گیگابایت)؛ این رقم در سال 2020 رشد ده برابری خواهد داشت و به رقم
44 زتابایت خواهد رسید (شکل 1).
شکل1- رشد انفجاری استفاده از اینترنت اشیا در کلان دادهها، انقلابی پدید آورده است.
اصلیترین
چالش در ارتباط با طراحی مدلی است که برای تجزیهوتحلیل دادهها استفاده
میشود؛ بهعبارتدیگر ما باید در ارتباط با کلاندادههایی که توسط
اینترنت اشیا تولید میشوند، دیدگاهمان را تغییر دهیم و بهجای آنکه به
دادهها در قالب یک انبار داده نگاه کنیم، باید بهعنوان یک زنجیره تأمین
نگاه کنیم. ردینگ، دراینباره دورنمای جالبی پیش روی ما قرار میدهد. او
میگوید: «ازآنجاکه ابزارها، این توانایی رادارند تا منابع دادهای ساختار
نیافته و جدید بیشماری را استخراج کنند، بهزودی مشکل عدم وجود دادههای
کافی، خود را نشان خواهند داد؛ یعنی شما باید اطمینان حاصل کنید که بر دو
مشکل اساسی غلبه کردهاید؛ اول آنکه دادههایی که واقعاً به آنها نیاز
داشتهاید را از دست ندادهاید و دوم آنکه اطمینان حاصل کنید وقت زیادی
برای دادههای غیرضروری صرف نکردهاید. به عقیده من باوجود یک زنجیره تأمین
دادهها، سازمانها میتوانند به هر روشی که لازم است، شکافهای موجود را
پر کنند. برای این منظور شرکتها میتوانند از این سه راهکار بهرهمند
شوند:
1- طراحی واسطهای (رابطهای) کاربردی برای برنامههای کاربردی که قبلها ایجادشدهاند.
2- درخواست کمک از شرکا یا اشخاص ثالث که برای آنها، دادههای موردنیاز را آماده کنند.
3- تولید دادهها با کمیسازی محیط فیزیکی ـ تجاری پیرامون خود».
البته
به دست آوردن دادههای درست، تنها مشکل سازمانها نیست. کسب مهارت لازم
درزمینه تجزیهوتحلیل برای مقابله با انبوهی اطلاعات، چالش دیگری است.
تحقیقات صورت گرفته توسط شرکت Accenture نشان میدهند که در سالهای آینده،
یافتن استعداد تجزیهوتحلیل برتر برای مدیریت حجم انبوهی از دادهها،
دشوار خواهد بود. نتایج یک پروژه تحقیقاتی یکساله توسط این شرکت نشان داد
که ایالاتمتحده در طول سال 2015 برای کارشناسان تجزیهوتحلیل نزدیک به
39000 شغل جدید را ایجاد کرده است؛ بااینوجود، تنها توانست 23 درصد از آن
شغلها را با کاندیداهای واجد شرایط پر کند. مهارتهای سنتی درزمینه تحلیل
دادهها در اینترنت اشیا کارایی نداشته است. شرکتها به افرادی نیاز
خواهند داشت که دارای دانش تجزیهوتحلیل باشند و همچنین از اینکه
دادههای جدید برای یک صنعت خاص چه معنا و مفهومی دارند نیز درک درستی
داشته باشند. همراه با روند رو به رشد حجم تولید دادهها و تحلیلی که برای
این دادهها موردنیاز است، سازمانها مجبور به آمادهسازی دستگاههایی
هستند که مشتریان و اشیا را در هر زمان و مکانی، به یکدیگر مرتبط کند.
سوتاریا
میگوید: «یکی از زیرساختهای کلیدی که شرکتهای فعال درزمینه اینترنت
اشیا به آن نیاز دارند، داشتن فرهنگ تصمیمگیری دادهمحور است». اینترنت
اشیا، بهطور ذاتی، جریانی از دادههای دقیق نشأتگرفته از جهان واقعی را
ارائه میکند. این دادهها برای آنکه معنادار شوند، باید پروسه تبدیل
دادهها به اطلاعات و سپس به دانش و آگاهی و درنهایت به خرد را با استفاده
از مهارتهای تحلیلی سنتی در این حیطه، پشت سر نهند؛ بهطور مثال، درزمینه
کشاورزی، یک دانشمند متخصص باید بداند که برای تولید یک محصول تحت شرایط
آبوهوایی مختلف، چه میزان آبیاری نیاز است. سوتاریا میافزاید: «IoT در
فاصلههای متناوب، قابلیت جمعآوری اطلاعات آبوهوا، مزرعه و شرایط تکتک
محصولات را به شکل خودکار و دقیق دارد؛ اما هنگامیکه دادهها جمعآوری
میشوند، اقداماتی که باید بر اساس دادهها صورت گیرد بسته به نظر
دانشمندان متخصص این حیطه است». ردینگ میگوید: «همراه با حجم رو به رشد
دادهها و تجزیهوتحلیل موردنیاز، شرکتها باید برای انبوه دستگاههایی که
مصرفکنندگان و اشیا را در هر نقطه و زمان با یکدیگر ارتباط میدهند،
آمادگی داشته باشند. کسانی که فلسفه زنجیره تأمین دادهها را پذیرفتهاند،
بدون غرق شدن در جزییات، درون این امواج اطلاعات گشتوگذار خواهند کرد». به
اعتقاد مایلز بهغیراز مواردی که به آنها اشاره شد، سرمایهگذاری
موردنیاز درزمینه حسگرها، قابلیتهای تجزیهوتحلیل و پشتیبانی و امنیت
دادهها ازجمله موانع دیگری است که فناوری اینترنت اشیا با آن روبرو است.
بهترین راهکار، استفاده از ابزارهای کلانداده است تا بتوان راهحلی تحلیلی پیرامون اینترنت اشیا ایجاد کرد
چنین
به نظر میرسد که اینترنت اشیا فناوری آینده است؛ درحالیکه دستگاههای
واقعی امروزی، توانایی ارائه تحلیلهای واقعی و ارزشمندی را دارند و مردم
در دنیای واقعی، از دستگاههای IoT بسیاری استفاده میکنند. باوجود تمامی
تبلیغاتی که شرکتها در ارتباط با اینترنت اشیا ارائه میکنند، شما
بهعنوان یک مصرفکننده حقدارید که نسبت به تبلیغات اینترنت اشیا مشکوک
باشید. سؤال این است که امیدبخشی اینترنت اشیا در چه مواردی با واقعیت
منطبق است و در چه مواردی دورنمایی از آینده است؟ من بهتازگی، فرصت کار
روی پروژهای را داشتم که بر استفاده از فناوریهای IoT در دستگاههای
پزشکی و محصولهای دارویی تمرکز کرده است؛ بهگونهای که میتوانست بر
مراقبتهای بهداشتی، تأثیری شگرف داشته باشد. مشاهده فرصتهای فراهمشده
توسط «مراقبتهای بهداشتی پیشگو» دید من را بیش از هر پروژه دیگری که با
آن در ارتباط بودهام، نسبت به ارزش اینترنت اشیا باز کرد؛ البته، ارزش
اصلی یک سیستم IoT به توانایی تجزیهوتحلیلها دادههای موردنیاز و رسیدن
به بینش مؤثر و مفید، بدون انجام هرگونه اشتباهی است؛ البته به دو دلیل،
ایجاد یک رسانه ارتباطی کار چندان سادهای نیست: اول باید توانایی
تجزیهوتحلیلهای مقیاسپذیر را داشته باشد و دوم این کار را در حجم و
سرعتی که دستگاههای IoT دادههای خود را تولید میکنند، انجام دهد. برای
اینکه به شما کمک کنیم تا همانند ما از یکسری مشکلات دورباشید، تعدادی از
مشاهدات خود را پیرامون چگونگی توسعه تجزیهوتحلیل ایدهآل، به اشتراک
میگذارم.
جمعآوری و ذخیرهسازی دادهها
پروتکلهای
بیشماری دریافت رویدادها از دستگاههای IoT را، بهویژه در سطوح
پایینتر، ممکن میسازند. مهم نیست دستگاه شما به شبکه بلوتوث، شبکه سلولی
یا وایفای متصل است یا از طریق اتصال سختافزاری ارتباط برقرار میکند،
کافی است بتواند از یک کارگزار، با استفاده از یک پروتکل تعریفشده، پیامی
را ارسال کند. یکی از محبوبترین پروتکلها برای برنامههای کاربردی IoT که
دارای پوشش گستردهای است، MQTT است. MQTT (سرنام MQ Telemetry Transport)
به معنای انتقال پیام از طریق دورسنجی و صفبندی است. MQTT یک پروتکل
اتصال اینترنت اشیا/ماشین به ماشین (M2M) است. این پروتکل بهصورت یک
انتقال پیام انتشار/اشتراک بسیار سبکوزن، طراحیشده است. MQTT برای اتصال
به موقعیتهای مکانی دوردستی که به حافظه کمی نیاز دارد یا پهنای باند شبکه
در آنها بسیار ارزشمند است، مؤثر و سودمند هست؛ بهطور مثال، این پروتکل
در حسگرهایی که از طریق لینک ماهوارهای با یک کارگزار ارتباط برقرار
میکند، در اتصالهای dial-up با ارائهدهندگان مراقبتهای بهداشتی در
موقعیتهای زمانی مختلف و در محدودهای از خودکارسازی خانگی و دستگاههای
کوچک، مورداستفاده قرارگرفته است.
معماری و پروتکلهای اینترنت اشیا
اصول
طراحی آن بهگونهای است که پهنای باند شبکه و منابع موردنیاز دستگاه را
به حداقل میرساند و درعینحال تضمینکننده اعتماد و اطمینان برای تحویل
پیام نیز است. همچنین جایگزینهای دیگری مانند پروتکل کاربردی محدود، XMPP
و پروتکلهای دیگر نیز وجود دارند. پروتکل کاربردی محدود CoAP
(سرنام Constrained Application Protocol) یک پروتکل نرمافزاری است که در
دستگاههای الکترونیکی بسیار ساده استفاده میشود و به آنها این امکان را
میدهد تا از طریق اینترنت بهصورت تعاملی، با یکدیگر ارتباط برقرار کنند.
کارگروه Constrained RESTful environments (CoRE) وابسته به نیروی ویژه
مهندسی اینترنت (IETF)، کار استانداردسازی اصلی این پروتکل را انجام داده
است.
پروتکل گسترشپذیر حضور و پیامرسانی XMPP (سرنام Extensible
Messaging and Presence Protocol)، یــــــــک پروتکل ارتباطی برای
میانافزار پیاممحور بر اساس XML (Extensible Markup Language) است.
XMPP، تبادل نزدیک به زمان واقعی را میان دادههای ساختاریافته اما قابل
توسعه بین هر دو یا تعداد بیشتری از ماهیتهای شبکه، ممکن میسازد.
شکل2-
کلان دادهها نهتنها بهسرعت در حال رشد هستند، بلکه طبیعت آنها مدام در
حال تغییر است، بهطوریکه توسعهدهندگان به دنبال پیدا کردن نوعهای
دادهای جدید هستند. مطالعات نشان میدهند که از اوایل سال 2007 میلادی فرم
دادهها دستخوش تغییراتی بوده است. بهطوریکه دادههای ساختیافته جای
خود را با دادههای غیرساختمند یا نیمهساختمند عوض کردهاند. دادههایی
که برنامههای خاص خود را میطلبند.
با
توجه به قابلیت دسترسی و پوشش گسترده MQTT و همچنین در دسترس بودن تعداد
بیشماری از برنامههای کاربردی مشتری و کارگزار متنباز توصیه میکنم، کار
خود را با آن آغاز کنید؛ مگر اینکه برای انتخاب پروتکلی دیگر، دلایل
قانعکنندهای داشته باشید. Mosquitto یکی از بهترین و پراستفادهترین
کارگزاران متنباز MQTT است و انتخابی قطعی برای برنامههای کاربردی شما
خواهد بود؛ اگر به دنبال اثبات این مفهوم بر اساس بودجهای محدود هستید و
میخواهید از هزینه دستگاههای اختصاصی اجتناب کنید، این حقیقت که
Mosquitto کارگزاری متنباز است، بسیار ارزشمند است. صرفنظر از اینکه چه
پروتکلی را انتخاب میکنید، درنهایت پیامهایی در اختیار خواهید داشت که
نمایانگر رویدادها و مشاهدات صورت گرفته از دستگاههای متصل به اینترنت شما
است.
مادامیکه پیامی توسط یک کارگزار (بروکر) همچون Mosquitto دریافت
میشود، شما میتوانید آن را به سیستم تجزیهوتحلیل ارسال کنید. راهکار
بهتر این است که قبل از انجام هرگونه تبدیل یا اعمال تغییرات روی آنها،
دادههای منبع اصلی را ذخیرهسازی کنیم؛ البته این امر زمانی ارزشمند است
که اشکالزدایی از مشکلات در خود مرحله تبدیل انجام شود. برای ذخیرهسازی
دادههای IoT، چندین راهکار پیش روی شما قرار دارد. من در برخی از
پروژهها از Hadoop و Hive استفاده کردهام؛ اما بهتازگی و با موفقیت در
حال کار با پایگاههای دادهای سندگرای NoSQL همچون، Couchbase هستم.
Couchbase، ترکیب خوبی از شاخصههای توان عملیاتی بالا و زمان تأخیر کم را
ارائه میدهد. Couchbase، پایگاه دادههای سندگرا (Document-Oriented
Database) و فاقد طرح کلی است که حجم بالایی از دادهها را پوشش میدهد و
همچنین بهآسانی توانایی اضافه کردن انواع مختلفی از رویدادهای جدید را
دارد.
نوشتن مستقیم داده در HDFS راهحل مناسب دیگری است؛ بهویژه اگر
در نظر دارید از Hadoop و تجزیهوتحلیل دستهگرا بهعنوان بخشی از جریان
کار تجزیهوتحلیل خود استفاده کنید. برای نوشتن دادههای منبع در محل
ذخیرهسازی دائمی، میتوانید کد دستی را مستقیم در بروکر پیام در سطح
پروتکل IoT (بهطور مثال، اگر از MQTT استفاده میکنید، بروکر Mosquitto)
ضمیمه کنید یا پیامها را در یک بروکر پیامرسان سطح متوسط همانند، Apache
Kafka قرار دهید و برای انتقال پیامها به بخشهای مختلف سیستم خود، از
کاربران مختلف Kafka استفاده کنید. یکی از الگوهای تثبیتشده این است که
پیامها را در Kafka و دو گروه کاربر بر اساس موضوع، قرار دهید که در آنجا
یکی از گروهها، در محل ذخیرهسازی دائمی خود دادههای خام را مینویسند،
درحالیکه دیگری، دادهها را به یک موتور پردازشگر جریان واقعی همانند،
Apache Storm انتقال میدهد؛ اگر از Kafka استفاده نمیکنید و با Storm کار
میکنید، میتوانید در توپولوژی خود که کاری جز ارسال پیامها به محل
ذخیرهسازی دائمی انجام نمیدهد، یک پردازشگر جریان (Bolt) را نصب کنید؛
اگر از MQTT و Mosquitto استفاده میکنید، ارسال مستقیم پیامهای خود به
توپولوژی Apache Storm از طریق منبع جریان (spout) MQTT، روشی آسان برای
پیوند دادن اشیا به یکدیگر است.